# 返回的结果只和它的参数相关，没有任何副作用，不依赖于外部数据，也不会对外部数据产生影响
def func1(a, b):
    # 纯函数：返回结果只依赖与传入的参数
    return a + b


vars = 1


def func2(a, b):
    # 非纯函数：依赖于外部变量
    return a + b + vars


res = [1, 2, 3]


def func3(a, b):
    # 非纯函数：会对外部数据产生影响
    res.append(a)
    res.append(b)
    return res


if __name__ == "__main__":
    print(func1(1, 2))
    print(func2(1, 2))
    print(func3(1, 2))
